04 编程语言
概览
进入专业的编程领域,需要学习三方面的知识
编程语言
需要学习 C、C++ 和 Java 这三个工业级的编程语言。语言规范都由 ISO 标准化过,都有工业界厂商组成的标准化委员会来制定工业标准,并且已经在业界应用于许多重要的生产环境中。
- C 语言:操作系统、网络、硬件驱动等都是 C 语言编写的
- C++ 语言:主流的浏览器、数据库、Microsoft Office、主流的图形界面、著名的游戏引擎等都是用 C++ 编写的,很多公司都用 C++ 开发核心架构
- Java 语言:金融电商公司广泛地使用 ,代码稳定性和生产力超过 C 和 C++,通过 JVM 可以轻松地跨平台,做代码优化,做 AOP 和 IoC 等高级技术
- Go 语言:是取代 C 和 C++ 的另一门有潜力的语言,已成为云计算领域事实上的标准语言,推荐学习,参考文章《Go 语言、Docker 和新技术》
理论学科
需要学习算法、数据结构、网络、计算机原理等计算机科学专业的知识
系统知识
可以认为是计算机世界的物理世界
编程语言
Java 语言
- 《Java 核心技术:卷 1 基础知识》是一本 Java 的入门参考书
- 《Spring 实战》和《Spring Boot 实战》前者是传统的 Spring,后者是新式的微服务的 Spring
- 《Effective Java》学习如何编写高效的代码,本书基本上都是各种经验之谈,推荐结合 Google Guava 库 进行实践
- 《Java 并发编程实战》Java 并发参考手册,从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则
- 《Java 性能权威指南》学习如何优化 Java 的性能,想了解更多的底层细节,可以读《深入理解 Java 虚拟机》
- 《Java 编程思想》从一个宏观角度了解 Java
- 《精通 Spring 4.x》应用和原理都讲得很透彻,IOC 和 AOP 也分析得很棒
- 《设计模式》学面向对象的设计模式,或者难度低一点的《Head First 设计模式》
把上面这些知识融汇贯通,就是一个高级的 Java 程序员了,在技术方面可以进入到一线公司的开发岗位。
C/C++ 语言
- 《C 程序设计语言》C 语言原作者写的圣经级的教科书
- 《C 语言程序设计现代方法》探讨了现代编译器的实现,以及和 C++ 的兼容,还揭穿了各种古老的 C 语言的神话和信条
- 《C 陷阱与缺陷》避免开发中踩坑
- 《C++ Primer 中文版》主要学习面向对象的多态、模板和重载操作符,以及 STL
- 《Effective C++》和《More Effective C++》研究其中的思维方式
- 《深度探索 C++ 对象模型 》了解一下编译器到底干了什么事
- C++ FAQ C++ 的作者 Bjarne Stroustrup 所写
Go 语言
- Go by Example 入门教程
- Go 101 不错的在线电子书,或着 The Go Programming Language 纸质书
- Effective Go Go 语言官方文档,学习如何更好地使用 Go 语言,以及 Go 语言中的一些原理
- Go 相关的一些并发编程的模式:
- GitHub 的 wiki 上的学习资源
- Awesome Go 内容丰富的 Go 资源列表
多学习掌握几门语言,可以对不同的语言进行比较,有更多的思考,同时培养学习能力,未来学习新技术更快。